var checkAllBtn = document.querySelector('#checkAll');
var checkAllLabel = document.querySelector('#checkAll+label');
var checkboxs = document.querySelectorAll('input[name=item]');
var dd = document.querySelector('dd');
var fx = document.querySelector('dt a')

//  判断所有选项是否被选中，如果所有都被选中则返回true，如果有一个没被选中则返回false
function isAllChecked() {
    var allFlag = Array.from(checkboxs).every(function(el) {
        return el.checked
    });
    //如果不是所有被选择这修改文字
    checkAllLabel.innerText = allFlag ? "全不选" : "全选"
    checkAllBtn.checked = allFlag
    return allFlag
}
//全选函数/全不选
function checkAll(f) {
    checkboxs.forEach(function(el) {
        el.checked = Boolean(f)
    })
}
//反选
function rotateCheck() {
    checkboxs.forEach(function(el) {
        el.checked = !el.checked
    })
}

//全选按钮被选择/取消选择
checkAllBtn.onchange = function() {
    //改变之后的状态
    var f = checkAllBtn.checked
    checkAllLabel.innerText = f ? "全不选" : "全选"
    checkAll(f)
}

dd.addEventListener('change', function(e) {
    // 判断是否全选
    var allChecked = isAllChecked();
    checkAllBtn.checked = allChecked
})

fx.addEventListener('click', function() {
    rotateCheck()
    isAllChecked()
})